Por :Cristián López Urbina, CEO VainaTec
Serverless es la inspiración poética de la programación orientada a objetos, microservicios, APIs de integración, SOA y cuanta nomenclatura se ha inventado para que seamos ordenados en la programación. Es tan difícil conseguirlo y mucho más complejo que se cumpla. Sólo forzando, a través de la aislación de sistemas, es que logramos conseguir una real programación orientada a microservicios, FaaS (Function as a Service) o APIs REST.
Mucho se dice que los informáticos son extraños, sobre todo los que se especializan en programación. Y es cierto, porque están en la pelea mental continua de desbloquear una etapa a través de la codificación. La construcción de software es una etapa nueva cada día, un juego en el que nadie sabe que viene después. El principal motor de un programador, la obsesión, los mantiene programando sin cansancio hasta saciar la curiosidad. La programación sigue siendo ingeniería e inspiración poética del escritor.
Hace 10 años me tocó diseñar y construir una plataforma transaccional host to host de alto rendimiento. No imaginan la cantidad de servers y storage en los que había que pensar. Otro tema era el switch transaccional que se utilizaría, cuánto costaría en licencias y cuál sería la base de datos adecuada. El área de operaciones que administraría esos servidores, alta disponibilidad, política de respaldos, equipo de continuidad operacional y configuración de Nagios para ver los consumos típicos de CPU/RAM/Disco eran parte del análisis.
Si eres de los que todavía piensa en server, sabrás que cuando te piden dimensionar la infraestructura, todos escapan al compromiso de decir cuánto se requiere y para cuánto va a alcanzar en nivel transaccional. Cuando la nube apareció esto se fue, ya que los errores de dimensionamiento podían ser corregidos de inmediato, pero el modelo de negocio de pago por uso fue lo que más impactó. Pagar por hora de máquina encendida, algo que en ambientes no productivos tenía mucho sentido, pero que en producción era más difícil. Muchos recurrimos a autoescalamiento de infraestructura, pero únicamente si la aplicación lo permitía. Sin embargo, los problemas de tener servidores seguían existiendo. La continuidad operacional y la seguridad, siempre será la principal preocupación del área de plataforma y sistemas.
Serverless, cuya implementación en AWS es una de las más elegantes que he conocido, representa el concepto de pago por uso en su máxima expresión, llevando la nube al siguiente nivel. Un nivel que sólo se alcanza cuando ya se entiende de que se trata todo; cuando hay visión de hacia dónde debe ir el mundo en plataformas y desarrollo de software. Es cuando se entiende bien lo que es un microservicio y cuál es el sueño de la orquestación sistémica.
También, cuando se utilizan las nuevas tecnologías existentes como containers, cuando se piensa que la seguridad está en los puntos expuestos de la aplicación, más que en el sistema operativo. Es el momento cuando se conceptualiza el desarrollo de software como la construcción de un barco, donde todos los compartimientos son estancos y que la falla de uno no provoca el hundimiento total. Finalmente, es cuando se entiende que el desarrollo de servicios es la comunicación entre neuronas y donde cada neurona cumple un rol específico y que sólo se activa a través de una solicitud.
Cuando se logra entender que un microservicio serverless no provoca la caída de una máquina por CPU o RAM, cuando se comprende que no llena un disco, cuando se entiende que si una transacción falló no afecta a su entorno, cuando se asume que no hay que buscar la vulnerabilidad de un servidor porque no lo hay y cuando la preocupación de la elasticidad de IaaS desaparece por completo es cuando se alcanzó el siguiente nivel Cloud.